Declarative Scripting in Haskell
نویسندگان
چکیده
We present a domain-specific language embedded within the Haskell programming language to build scripts in a declarative and typesafe manner. We can categorize script components into various orthogonal dimensions, or concerns, such as IO interaction, configuration, or error handling. In particular, we provide special support for two dimensions that are often neglected in scripting languages, namely creating deadlines for computations and tagging and tracing of computations. Arbitrary computations may be annotated with a textual tag explaining its purpose. Upon failure a detailed context for that error is automatically produced. The deadline combinator allows one to set a timeout on an operation. If it fails to complete within that amount of time, the computation is aborted. Moreover, this combinator works with the tag combinator so as to produce a contextual trace.
منابع مشابه
Comparative Studies of 10 Programming Languages within 10 Diverse Criteria - a Team 10 COMP6411-S10 Term Report
This is a survey on the programming languages: C++, JavaScript, AspectJ, C#, Haskell, Java, PHP, Scala, Scheme, and BPEL. Our survey work involves a comparative study of these ten programming languages with respect to the following criteria: secure programming practices, web application development, web service composition, OOP-based abstractions, reflection, aspect orientation, functional prog...
متن کاملComparing Selected Criteria of Programming Languages Java, PHP, C++, Perl, Haskell, AspectJ, Ruby, COBOL, Bash Scripts and Scheme Revision 1.0 - a Team CPLgroup COMP6411-S10 Term Report
Comparison of programming languages is a common topic of discussion among software engineers. Few languages ever become sufficiently popular that they are used by more than a few people or find their niche in research or education; but professional programmers can easily use dozens of different languages during their career. Multiple programming languages are designed, specified, and implemente...
متن کاملHPorter: Using Arrows to Compose Parallel Processes
HPorter is a DSL embedded in Haskell for composing processes running on a parallel computer. Using arrows (a generalization of monads), one can “wire together” processes in a manner analogous to a signal-processing application. The processes themselves are typically existing C or C++ programs, but may also be programs written in a first-order sub-language in Haskell that supports basic arithmet...
متن کاملVisto: A More Declarative GUI Framework
By inverting the widget call back relationship and by providing selectors, a suitable abstraction for concrete widget choices, Visto provides a more declarative approach to defining user interfaces, building on the declarativeness of the lazy functional language Haskell.
متن کاملBlock Diagrams as a Syntactic Extension to Haskell
Often, the semantics of languages are defined by the products that support their usage. The semantics are then determined by the source code of those products, which often is a general-purpose programming language. This may lead to complications in defining a clean semantics, for example because imperative notions slip into a declarative language. It is illustrated how block diagrams can be tra...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009